package wodegua.d23_test.demo4;

/**
 * 需求:
 * ArrayList集合是很重要的一种集合，请手工书写一个MyArrayList集合模拟ArrayList集合。
 *
 * 具体功能点的要求如下:
 * 1、MyArrayList需要支持泛型，内部使用数组作为容器。
 * 2、在MyArrayList中开发add方法，用于添加数据的，需要遵循ArrayList的扩容机制(自行设计代码，不需要与Arraylist的源代码一样思想一致即可)
 * 3、在MyArrayList中开发根据索引查询数据的get方法。
 * 4、在MyArrayList中开发根据索引删除数据的remove方法。
 * 5、在MyArrayList中开发一个获取集合大小的size()方法。
 * 6、能够在MyArrayList集合中开发一个forEach方法，这个方法支持使用Lambda进行遍历，至于函数式接口叫什么名称无所谓。
 * 7、编写测试用例对自己编写的MyArrayList集合进行功能正确性测试。
 */
public class Test04 {
    public static void main(String[] args) {
        MyArrayList<String> myArrayList = new MyArrayList<>();
        myArrayList.add("张无忌");
        myArrayList.add("赵敏");
        myArrayList.add("周芷若");
        myArrayList.add("小昭");
        myArrayList.add("金毛狮王");
        System.out.println(myArrayList);
        System.out.println(myArrayList.get(2));
        System.out.println(myArrayList.remove(0));
        System.out.println(myArrayList);
        System.out.println(myArrayList.size());
        myArrayList.forEach(new MyConsumer<String>() {
            @Override
            public void accept(String s) {
                System.out.println(s);
            }
        });
    }
}
